package de.dhbw.karlsruhe.picsim.model.memory;

import org.jetbrains.annotations.NotNull;

/**
 * Created by IntelliJ IDEA.
 * User: goesen
 * Date: Apr 29, 2010
 * Time: 12:40:37 PM
 */

/**
 * Eine Erweiterung des Pic-Stack für die GUI
 */
public interface DirectAddressAbleStack extends StackFacade {
    /**
     * der Pointer zeigt auf die Adresse, die bei einem Call gefüllt wird
     *
     * @return der aktuelle Wert des Stackpointers
     */
    int getPointer();

    /**
     * @param where die gewünschte Adresse zw. 0 und 7
     * @return die Adresse an der Position
     */
    @NotNull
    CommandRegisterAddress getAddress(int where);

    /**
     * Überschreibt eine Adresse auf dem Stack
     *
     * @param where   die Position an die Adresse stehen soll
     * @param address die
     */
    void setAddress(int where, @NotNull CommandRegisterAddress address);
}
